package topic;
/*
    长度为3个循环队列
 */
public class Quque {
    //用长度为3的数组来实现循环队列
    static int arr[]=new int[3];
    static int head=-1;  //初始队列头的位置
    static int tail=-1;  //初始队列尾的位置

    //向队尾增加一个元素
    public  void add(int num){
        //判断队列是否已满(tail-head表示队列长度)
        if(tail-head>=3){   //队列已满
            //将队头元素删除
            remove();
            arr[tail+1]=num;
            tail++;
        }else{  //队列未满
            arr[tail+1]=num;
            tail++;
        }
    }

    //删除队头一个元素
    public  void remove(){
        //求出长度
        int length=tail-head;
        if(length>0){   //队列中有元素时才进行删除
            //删除队头元素
            for(int i=0;i<length-1;i++){
                arr[i]=arr[i+1];
            }
            //尾指针前移一位
            tail--;
        }else {
//            System.out.println("error");
        }
    }

    //打印队列
    public  void print(){
        int length=tail-head;
        if(length==0){
            System.out.println("");
        }else{
            String str="";
            for(int i=0;i<length;i++){
                if(i==0){   //第一个元素
                    str+=arr[i];
                }else{      //不是第一个元素
                    str+=","+arr[i];
                }
            }
            System.out.println(str);
        }
    }

    public static void main(String[] args) {
        Quque quque=new Quque();
        quque.add(3);
        quque.add(6);
        quque.add(10);
        quque.add(1);
        quque.add(2);
        quque.remove();
        quque.remove();
        quque.remove();
        quque.remove();
//        quque.add(1);
        quque.print();
    }
}
